/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.dengues.model.database.util;

import org.dengues.model.database.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see org.dengues.model.database.DatabasePackage
 * @generated
 */
public class DatabaseAdapterFactory extends AdapterFactoryImpl {
    /**
     * The cached model package.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected static DatabasePackage modelPackage;

    /**
     * Creates an instance of the adapter factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public DatabaseAdapterFactory() {
        if (modelPackage == null) {
            modelPackage = DatabasePackage.eINSTANCE;
        }
    }

    /**
     * Returns whether this factory is applicable for the type of the object.
     * <!-- begin-user-doc -->
     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
     * <!-- end-user-doc -->
     * @return whether this factory is applicable for the type of the object.
     * @generated
     */
    public boolean isFactoryForType(Object object) {
        if (object == modelPackage) {
            return true;
        }
        if (object instanceof EObject) {
            return ((EObject)object).eClass().getEPackage() == modelPackage;
        }
        return false;
    }

    /**
     * The switch the delegates to the <code>createXXX</code> methods.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DatabaseSwitch modelSwitch =
        new DatabaseSwitch() {
            public Object caseDBTable(DBTable object) {
                return createDBTableAdapter();
            }
            public Object caseDBColumn(DBColumn object) {
                return createDBColumnAdapter();
            }
            public Object caseDatabaseDiagram(DatabaseDiagram object) {
                return createDatabaseDiagramAdapter();
            }
            public Object caseForeignKey(ForeignKey object) {
                return createForeignKeyAdapter();
            }
            public Object caseDBNote(DBNote object) {
                return createDBNoteAdapter();
            }
            public Object caseDiagramChild(DiagramChild object) {
                return createDiagramChildAdapter();
            }
            public Object caseAbstractDBObject(AbstractDBObject object) {
                return createAbstractDBObjectAdapter();
            }
            public Object caseSectionColumns(SectionColumns object) {
                return createSectionColumnsAdapter();
            }
            public Object caseSectionFilters(SectionFilters object) {
                return createSectionFiltersAdapter();
            }
            public Object caseSectionGroups(SectionGroups object) {
                return createSectionGroupsAdapter();
            }
            public Object caseSectionSorts(SectionSorts object) {
                return createSectionSortsAdapter();
            }
            public Object caseSectionHavings(SectionHavings object) {
                return createSectionHavingsAdapter();
            }
            public Object caseSectionUnions(SectionUnions object) {
                return createSectionUnionsAdapter();
            }
            public Object caseForeignKeyLabel(ForeignKeyLabel object) {
                return createForeignKeyLabelAdapter();
            }
            public Object defaultCase(EObject object) {
                return createEObjectAdapter();
            }
        };

    /**
     * Creates an adapter for the <code>target</code>.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param target the object to adapt.
     * @return the adapter for the <code>target</code>.
     * @generated
     */
    public Adapter createAdapter(Notifier target) {
        return (Adapter)modelSwitch.doSwitch((EObject)target);
    }


    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.DBTable <em>DB Table</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.DBTable
     * @generated
     */
    public Adapter createDBTableAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.DBColumn <em>DB Column</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.DBColumn
     * @generated
     */
    public Adapter createDBColumnAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.DatabaseDiagram <em>Diagram</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.DatabaseDiagram
     * @generated
     */
    public Adapter createDatabaseDiagramAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.ForeignKey <em>Foreign Key</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.ForeignKey
     * @generated
     */
    public Adapter createForeignKeyAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.DBNote <em>DB Note</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.DBNote
     * @generated
     */
    public Adapter createDBNoteAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.DiagramChild <em>Diagram Child</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.DiagramChild
     * @generated
     */
    public Adapter createDiagramChildAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.AbstractDBObject <em>Abstract DB Object</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.AbstractDBObject
     * @generated
     */
    public Adapter createAbstractDBObjectAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionColumns <em>Section Columns</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionColumns
     * @generated
     */
    public Adapter createSectionColumnsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionFilters <em>Section Filters</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionFilters
     * @generated
     */
    public Adapter createSectionFiltersAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionGroups <em>Section Groups</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionGroups
     * @generated
     */
    public Adapter createSectionGroupsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionSorts <em>Section Sorts</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionSorts
     * @generated
     */
    public Adapter createSectionSortsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionHavings <em>Section Havings</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionHavings
     * @generated
     */
    public Adapter createSectionHavingsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.SectionUnions <em>Section Unions</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.SectionUnions
     * @generated
     */
    public Adapter createSectionUnionsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.database.ForeignKeyLabel <em>Foreign Key Label</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.database.ForeignKeyLabel
     * @generated
     */
    public Adapter createForeignKeyLabelAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for the default case.
     * <!-- begin-user-doc -->
     * This default implementation returns null.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @generated
     */
    public Adapter createEObjectAdapter() {
        return null;
    }

} //DatabaseAdapterFactory
